package CRUD;



import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class ContaCRUD {
    
    

    public void criar(Connection con, Conta conta) throws SQLException{
         String sql = "insert into conta values(?,?,?)";
        
         try(PreparedStatement stm = con.prepareStatement(sql)){
             stm.setInt(1, conta.numero);
             stm.setString(2, conta.cliente);
             stm.setDouble(3, conta.saldo);
             stm.executeUpdate();
         }
    }
    
    public List<Conta> ler (Connection con) throws SQLException {
        List<Conta> lista = new ArrayList<>();
        String sql = "select * from conta";
           try(PreparedStatement stm = con.prepareStatement(sql);
             ResultSet rs = stm.executeQuery()){
                while(rs.next()){
                    lista.add(new Conta(rs.getInt(1),rs.getString(2), rs.getDouble(3)));
                }
             }
            return lista;
        }
    
     public void alterar(Connection con, Conta conta) throws SQLException{
         String sql = "update conta set cliente =?, saldo=? where numero=?";
        
         try(PreparedStatement stm = con.prepareStatement(sql)){
             
             stm.setString(1, conta.cliente);
             stm.setDouble(2, conta.saldo);
             stm.setInt(3, conta.numero);
              stm.executeUpdate();
         }
    }
         
          public void excluir(Connection con, Conta conta) throws SQLException{
            String sql = "delete from conta where numero=?";
            try(PreparedStatement stm = con.prepareStatement(sql)){
                    stm.setInt(1, conta.numero);
                     stm.executeUpdate();
                }
         }
        
        public static void main(String[] args) throws SQLException {
        
            String url = "jdbc:mysql://localhost:3306/aula";
            String login = "root";
            String senha = "charlesjava123";
         
            try(Connection con = DriverManager.getConnection(url, login,senha)){
                ContaCRUD crud = new ContaCRUD();
                
                //Conta conta1 = new Conta(1, "Ricardo", 1000.00);
              
              //  conta1.saldo = 9000.99;
               // crud.alterar(con, conta1);
                
                Conta conta3 = new Conta(3, "Junior", 3000.00);
              
                //crud.excluir(con, conta3);
                
                /*
                Conta conta2 = new Conta(2, "Diego", 2000.00);
                
                
                crud.criar(con, conta1);
                crud.criar(con, conta2);
                crud.criar(con, conta3);
                */
                List<Conta> contas = crud.ler(con);
                for(Conta conta : contas){
                    System.out.println(conta);
                }
            }
    }
}
